Tootsville::Infinity-Game-Action

Function

Infinity-Game-Action names a function, with lambda list (D USER RECIPIENT/S):

Send an in-world game's action.

Lisp GAME-ACTION = JSON gameAction

These are actions that affect in-world minigames.

Usage

{ c: "gameAction",
  d: { game: "AEB967CB-5598-40D5-9B4A-894C9BC38501",
       action: ACTION-NAME, 
       [ ... PARAMS ... ] } }

Example

{ c: "gameAction",
  d: { game: "AEB967CB-5598-40D5-9B4A-894C9BC38501",
       action: "tagYouReIt", 
       tagged: "5047F44E-8B1D-4B8A-9EC6-4E1D6E1653AD" } }

Overview of In-World Minigames

In-world minigames generally don't use much of a special interface, but sometimes require some kind of additional overlay. The game actions are usually signaled by in-game items.

In-world minigames include soccer, volleyball, croquet, bowling, card table games, tag, and more. Each of these games may have a score and possibly some enforceable rules, although we often leave enforcement of the rules to the players (so that they can choose which rule set they like).

These game actions are identified by function names beginning with “GAME-ACTION-.” Some of them include:

General Structure

A gameAction packet has a d datum with a key action, which is used to further dispatch the game action to its appropriate handler. The action value is the smallCamelCase version of the “GAME-ACTION-function-name” that will actually handle it.

The specific game which is being addressed must be identified by its UUID. This is usually discovered by finding a game tag on an item or place in the game world.

WRITEME: Explain how to find a game tag.

Refer to the individual game action functions for further details.

See Appendix 8 for an index of game actions.

Response format

The individual game action handlers will provide their own response formats. In general, they will come from gameAction, with a status of true or false; when false, they should include an error text which may be user-visible, and may include an err tag which is a general machine-readable code.

Status 400 Error

If the action is not supplied, or if no such action is known to the server, then an error 400 is returned, with a JSON error packet of the usual form:

{ from: "gameAction",
  status: false,
  error: "error message text",
  err: "game-action-not-found" }

File

Defined in file src/infinity/legacy-commands.lisp.